package com.huawei.su;

import java.util.Stack;

/**
 * https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6?tpId=295&tqId=23281&ru=%2Fpractice%2Ffcf87540c4f347bcb4cf720b5b350c76&qru=%2Fta%2Fformat-top101%2Fquestion-ranking&sourceUrl=%2Fexam%2Foj
 * <p>
 * 用两个栈来实现一个队列，使用n个元素来完成 n 次在队列尾部插入整数(push)
 * 和n次在队列头部删除整数(pop)的功能。 队列中的元素为int类型。
 * 保证操作合法，即保证pop操作时队列内已有元素。
 */
public class BM42 {
    public static void main(String[] args) {
    }
    Stack<Integer> stack1 = new Stack<>();
    Stack<Integer> stack2 = new Stack<>();

    public void push(int node) {
        if (stack2.isEmpty()) {
            stack1.push(node);
        } else {
            while (true) {
                if (stack2.isEmpty()) {
                    break;
                }
                stack1.push(stack2.pop());
            }
            stack1.push(node);
        }
    }

    public int pop() {
        if (stack1.isEmpty()) {
            return stack2.pop();
        } else {
            while (true) {
                if (stack1.isEmpty()) {
                    break;
                }
                stack2.push(stack1.pop());
            }
            return stack2.pop();
        }
    }
}
